package cn.lbf.stuniversity.equipmentbasic.form;

import cn.lbf.stuniversity.vo.PageForm;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class EquipmentBasicForm extends PageForm {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "equipment_basic_id")
    @JsonProperty("equipmentBasicId")
    private String equipmentBasicId;

    @Column(name = "equipment_type_id")
    @JsonProperty("equipmentTypeId")
    private String equipmentTypeId;

    @Column(name = "equipment_name")
    @JsonProperty("equipmentName")
    private String equipmentName;

    @Column(name = "equipment_no")
    @JsonProperty("equipmentNo")
    private String equipmentNo;

    @Column(name = "equipment_status")
    @JsonProperty("equipmentStatus")
    private String equipmentStatus;

    @Column(name = "borrow_flow_log_id")
    @JsonProperty("borrowFlowLogId")
    private String borrowFlowLogId;

    @Column(name = "last_equipment_borrow_flow_id")
    @JsonProperty("lastEquipmentBorrowFlowId")
    private String lastEquipmentBorrowFlowId;

    @Column(name = "last_borrow_date")
    @JsonProperty("lastBorrowDate")
    @Temporal(TemporalType.DATE)
    private Date lastBorrowDate;

    @Column(name = "last_planned_return_date")
    @JsonProperty("lastPlannedReturnDate")
    @Temporal(TemporalType.DATE)
    private Date lastPlannedReturnDate;

    @Column(name = "equipment_images")
    @JsonProperty("equipmentImages")
    private String equipmentImages;

    @Column(name = "usage_instructions")
    @JsonProperty("usageInstructions")
    private String usageInstructions;

    @Column(name = "user_manual")
    @JsonProperty("userManual")
    private String userManual;

    @Column(name = "remarks")
    @JsonProperty("remarks")
    private String remarks;

    @Column(name = "enable_status")
    @JsonProperty("enableStatus")
    private Integer enableStatus;

    @Column(name = "creator_id")
    @JsonProperty("creatorId")
    private String creatorId;

    @Column(name = "create_time")
    @JsonProperty("createTime")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createTime;

    @Column(name = "last_modifier_id")
    @JsonProperty("lastModifierId")
    private String lastModifierId;

    @Column(name = "last_modify_time")
    @JsonProperty("lastModifyTime")
    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModifyTime;

    @Column(name = "deleter_id")
    @JsonProperty("deleterId")
    private String deleterId;

    @Column(name = "delete_time")
    @JsonProperty("deleteTime")
    @Temporal(TemporalType.TIMESTAMP)
    private Date deleteTime;

    @Column(name = "sort_index")
    @JsonProperty("sortIndex")
    private Integer sortIndex;

    @Column(name = "status_flag")
    @JsonProperty("statusFlag")
    private Integer statusFlag;

}